#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// 错误 
// 1、运行代码程序会出现崩溃的现象
// 2、程序存在内存泄漏的问题


void getMemory(char *p){  
    p = malloc(100);    // p是形参，p修改后不能影响str
    printf("size = %d \n", sizeof(p));
}
int main()
{
    // str以值传递的形式给p
    // p是getMemory函数的形参，只能函数内部有效 -- 问题1
    // 等getMemory函数返回之后，动态开辟内存尚未释放,并且无法找到，所以会造成内存泄漏 - 问题2
    char *str = NULL;
    getMemory(str);
    printf("%p \n",str); // 此时str是00000000
    strcpy(str,"Hello World"); // 程序崩溃
    printf(str);
    return 0; // 返回 0
}
